﻿using System.Collections.Generic;
using UnityEngine;
/*测试Mathf
    Mathf.Abs();//绝对值
    Mathf.Max();//最大值
    Mathf.Clamp();//限制 <********>
    Mathf.Clamp01();//限制在0和1之间
    Mathf.Lerp()://插值 根据比例求值 <********>
    Mathf.InverseLerp();//反插值 根据值求比例
    Mathf.Deg2Rad;//度到弧度的转化量 360度等于2Pi弧度 2 to
    <********>
    Mathf.Rad2Deg//弧度到度的转化量 <********>
    Mathf.Sin();//求正弦值 参数是弧度
    Mathf.Cos();//求余弦 参数是弧度
    Mathf.Tan();//求正切 参数是弧度
    Mathf.Round();//四舍五入
    Mathf.Repeat();//重复 (有点像小数取余数)
    Mathf.PingPong();//
    Mathf.Pow();//求几次方
    Mathf.ClosestPowerOfTwo(); //返回最近的2的N次方
    Mathf.NextPowerOfTwo();//返回下一个2的n次方
    Mathf.MoveTowards();//朝某个值变化 <********>
*/
public class Test_Mathf : MonoBehaviour
{
    //限制
    float r = Random.Range(0, 10.0f);
    private void Start1()
    {
        //绝对值
        print(Mathf.Abs(-3.14f));//支持int型和float型
        //最大值
        print(Mathf.Max(5,4,0,8.8f));
    }
    private void Update1()
    {
        float r1 = Mathf.Clamp(r, 3, 6);
        if (Input.GetKeyDown(KeyCode.Space))
        {
            print(r1);
        }
    }
    //演示插值
    public float t;
    public Transform a, b,c;
    public AnimationCurve curve;//动画曲线，可以自己画,用Evaluate()取y值
    private void Start()
    {
        Mathf.Clamp(t, 0, 1);
    }
    //演示插值
    public void Update2()
    {
        t += Time.deltaTime / 3;
        c.position = Vector3.Lerp(a.position, b.position, curve.Evaluate(t));
    }
    //用插值做常规缓动效果，a缓动到b
    private void Update3()
    {
        a.position = Vector3.Lerp(a.position, b.position, Time.deltaTime);
    }
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space ))
        {
            float d = 360;
            print(d*Mathf.Deg2Rad);
        }
    }
}
